home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Ornamentation / rnd-ornament < prev    next >
Text File  |  1998-10-22  |  4KB  |  129 lines

  1. rnd-ornament min max melody 
  2. &key (step 1) (type 'norm) (rhy-type 'evens)
  3. (rhy nil) (pcnt 100) (rnd-type 'norm) (to-pcnt nil)
  4. (step-type 'norm) (rnd-seed nil) (seed-print nil)
  5.  
  6. legal types 'norm 'rnd
  7. legal rhy-types 'all 'evens 'odds
  8. legal rnd-types 'norm 'gauss
  9. legal step-types 'norm 'change
  10.  
  11.  
  12. makes random ornamentation of length between min and max.
  13. the difference of multi-ornament is that multi-ornament
  14. always ornament up or down.
  15. rnd-ornament selects by random which way to go every single
  16. ornament-note.
  17. with type 'norm it always finds it's way back to the
  18. beginning.
  19. so a single note 'a with min 5 and max 5 could result in:
  20. (a b a b a) or (a -b a -b a) or (a b c b a) or (a -b a b a)
  21. and so on. higher min and max settings will produce
  22. more variations (more combinations)
  23. best way is to experiment with the different settings to
  24. see what happens.
  25.  
  26. seed works like in all other random-functions: non-nil
  27. numbers between 0.0001 and 0.9999 lets you control the
  28. random-generator.  
  29.  
  30.  
  31. (rnd-ornament 3 7 '(a b c d e) :rnd-seed nil)
  32. -> always different
  33.  
  34. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.03)
  35. ->((a -b a) (b c d c b) (c d c b) (d e f g f e) (e d c d))
  36.  
  37. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.07)
  38. ->((a -b a) (b a b a b) (c b a b c b) (d e d) (e d c d e d))
  39.  
  40.  
  41. rnd-type let you select between 'norm and 'gauss
  42.  
  43. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :rnd-type 'norm) 
  44. ->((a -b a) (b a b) (c d c d c b) (d e d c d c d) (e d c d))
  45.  
  46. same seed but different rnd-type:
  47.  
  48. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :rnd-type 'gauss)
  49. ->((a -b a) (b a -b -c -b a) (c b a b c) (d c b c d) (e f g f e d))
  50.  
  51. pcnt controls how many percent of notes that will be 
  52. ornamented.
  53.  
  54. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 50)
  55. ->((a) (b a b a) (c b c) (d c b c d) (e))
  56.  
  57. when to-pcnt is non nil you can scale from pcnt to to-pcnt 
  58.  
  59. (rnd-ornament 3 7 '(a b c d e f g h i) 
  60. :rnd-seed 0.003 :rnd-type 'norm :pcnt 0 :to-pcnt 100)
  61. ->((a) (b) (c) (d) (e d c d) (f) (g) (h g h i h g) (i h i))
  62.  
  63. with step you control the step-amount:
  64. step '(1) ornaments (a b c) and '(2) (a c e)
  65. this can make arpeggios.
  66. step can also be a list of integers.
  67.  
  68. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 100 :step 3)
  69. ->((a -d a) (b -c -f -c b) (c f c -b) (d a -d a d) (e h e))
  70.  
  71. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :rnd-type 'norm :pcnt 100 :step '(1 5 3))
  72. ->((a -b a) (b -e -j -e b) (c f c -b) (d c b c d) (e j e))
  73.  
  74. also min and max can be lists of integers:
  75. this way you can control more exactly the 
  76. ornamentation-lengths for each note.
  77.  
  78. (rnd-ornament '(1 3 5) '(2 4 6) '(a b c d e) :rnd-seed 0.11)
  79. ->((a) (b a) (c d c) (d) (e f))
  80.  
  81. with type 'rnd repeated notes are allowed.
  82.  
  83. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.31 :type 'rnd)
  84. ->((a b b) (b c c) (c d d e) (d e f g h) (e g h i i i))
  85.  
  86.  
  87. with step-type 'change and a list of step-values
  88. step will change inside each ornamented note:
  89. step '(1 3) step-type 'norm could be (a b a) (a d a)
  90. step '(1 3) step-type 'change could be (a b e) (a -b c)
  91.  
  92.  
  93. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :step '(1 4)
  94. :step-type 'norm)
  95. ->((a -b a) (b -d b) (c d c d c b) (d h d -b d -b d) (e d c d))
  96.  
  97. (rnd-ornament 3 7 '(a b c d e) :rnd-seed 0.11 :step '(1 4)
  98. :step-type 'change)
  99. ->((a -b d) (b a e) (c d -b a e d) (d h g c d -b a) (e a -e -d))
  100.  
  101.  
  102. when rhy is a rhythm instead of nil you will get 
  103. matching ornamentation of the rhythm 
  104.  
  105. (rnd-ornament 2 4 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.31)
  106. ->(((a -b) (b a b) (c b)) ((1/4 1/4) (1/12 1/12 1/12) (1/4 1/4)))
  107.  
  108.  
  109. with rhy-type you can select between 'all 'evens and 'odds
  110. with 'evens length-repeat-l is used and with 'odds
  111. length-repeat-var is used 'all pick among the two.
  112.  
  113. (rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
  114.  :rhy-type 'all)
  115. ->(((a -b -c -b a) (b a b a) (c d c b c)) (((1/12 1/12 1/12 1/8 1/8)) ((1/16 1/16 1/16 1/16)) ((1/12 1/12 1/12 1/8 1/8))))
  116.  
  117.  
  118. (rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
  119.  :rhy-type 'evens)
  120. ->(((a -b -c -b a) (b a -b a b) (c d e d c)) ((1/10 1/10 1/10 1/10 1/10) (1/20 1/20 1/20 1/20 1/20) (1/10 1/10 1/10 1/10 1/10)))
  121.  
  122.  
  123. (rnd-ornament 4 7 '(a b c) :rhy '(1/2 1/4) :rnd-seed 0.12
  124.  :rhy-type 'odds)
  125. ->(((a -b -c -b a) (b a -b a b) (c b c b c)) (((1/12 1/12 1/12 1/8 1/8)) ((1/16 1/16 1/24 1/24 1/24)) ((1/8 1/8 1/12 1/12 1/12))))
  126.  
  127. did I forget anything?
  128. to be honest I don't now.
  129.